#!/bin/bash
# nginx配置
# author    : guyadong
# date      : 2019/08/01
# 导入标志,确保只会被导入一次
nginx_config_included=true
# 脚本初始化
[ "$common_init_included" != 'true' ] && . ./common_init.sh

ngxcfg_title='nginx 配置'

port_online $FDEVMGRWEB_PORT ; nginx_online=$?

# 检查 nginx 参数是否有无效值,有则返回-1,无则返回0
# $1 nginx_port
# $2 nginx_location
function check_nginx_params(){

    [[ ! "$1" =~ ^[0-9]{1,5}$ ]] && error_message "端口号(port)不可为空,必须为数字(1~65535)" && return 255
    [ "$2" != "$DEP_FOLDER/$NGINX" ] && [[ ! -d "$2"  ]] && error_message "安装路径(location)无效" && return 255
    return 0
}

# 输出 webredis 连接参数值
function output_nginx_params(){
    echo nginx_port=$nginx_port
    echo nginx_location=$nginx_location
}

# 设置nginx参数
# 从 nginx_port nginx_location 等变量中读取连接参数作为默认输入
# 对话框结束时回写到对应的变量
# 如果参数无效则一直循环,如果点返回则跳出循环返回3,否则返回0
function fun_nginx_cfg(){

    local port="$nginx_port"
    local location="$nginx_location"

    while true  ; 
    do 
        # 保存对话框选项的值到$values,如果对话框选项返回,则$values值为'EXIT_$?'
        local values=$(dialog \
            --backtitle "$DEFAULT_BACK_TITLE$context_backtitle_suffix" \
            --title "$ngxcfg_title" $DLG_BACK_BTN --nocancel \
            --form "请输入 nginx 运行参数:" 15 60 0 \
                "端口号(port)      :" 1 1   "$port"     1 20 30 0 \
                "安装路径(location):" 2 1	"$location"  2 20 30 0 \
                3>&1 1>&2 2>&3 || EXIT_$?)
        [[ "$values" =~ EXIT_[0-9] ]] && return ${values##*EXIT_}
        port=$(echo      "$values" | sed -n 1p)
        location=$(echo  "$values" | sed -n 2p)
        ! check_nginx_params "$port" "$location" && continue; 
        # 按确认按钮时将对话框返回值分别保存到对应的变量中
        nginx_port="$port"
        nginx_location="$location"
        return 0
    done
}

#fun_nginx_cfg
#output_nginx_params